package com.zh.note.demo.collection;

import java.util.HashMap;
import java.util.Map;

/**
 * @Author: zhanghuan
 * @date: 2023/4/2 10:49
 * @description: create it
 * put()添加key相同，值会覆盖
 * putIfAbsent() key相同 值不会覆盖
 */
public class MapDemo {
    public static void main(String[] args) {
        /**
         * 创建方式
         */

        // Map<Integer, String> map = new HashMap<>();
        // Map<Integer, Integer> concurrentHashMap = new ConcurrentHashMap<>();
        // Map<Integer, String> synchronizedMap = Collections.synchronizedMap(map);
        // Map<Integer, String> unmodifiableMap = Collections.unmodifiableMap(map);

        /**
         * 高级用法
         * getOrDefault
         * putIfAbsent
         */
        // Map<String, String> map = new HashMap<>();
        // map.put("key1","value1");
        // // 当key存在时，获取存在的value值
        // String orDefault = map.getOrDefault("key1", "defaultValue");
        // System.out.println(orDefault); // value1
        // // 当key不存在时，获取指定的值
        // String orDefault1 = map.getOrDefault("key2", "defaultValue");
        // System.out.println(orDefault1); // defaultValue


        // Map<String, String> map = new HashMap<>();
        // map.put("key1", "value1");
        // // key存在时，不会添加成功
        // map.putIfAbsent("key1", "newValue");
        // System.out.println(map); // {key1=value1}
        // // key不存在时，才会添加成功
        // map.putIfAbsent("key2","newValue");
        // System.out.println(map); // {key1=value1, key2=newValue}

        /**
         * replace用法
         */
        Map<String, String> map = new HashMap<>();
        map.put("key1", "value1");
        // key存在时覆盖原值
        map.replace("key1", "newValue");
        map.replace("key2", "value2");
        System.out.println(map); //输出 {key1=newValue}


    }
}
